package org.example.actualcombat.demos.web.modules.pms.service;

import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.actualcombat.demos.web.modules.pms.model.dto.PmsProductSaveParamDTO;
import org.example.actualcombat.demos.web.modules.pms.model.PmsProduct;
import org.example.actualcombat.demos.web.modules.pms.model.dto.PmsProductUpdateInitDTO;
import org.example.actualcombat.demos.web.modules.pms.model.dto.ProductConditionDTO;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

public interface PmsProductService extends IService<PmsProduct> {
    Page getList(ProductConditionDTO productConditionDTO);

    Boolean updateStatus(List<Long> ids);

    Boolean updateStatus1(Integer newStatus, List<Long> ids, SFunction<PmsProduct,?> getPublishStatus);

    Boolean createProduct(PmsProductSaveParamDTO product) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException;

    PmsProductUpdateInitDTO getInfo(Long id);
}
